828614d8b90b0dad4f5a52d0cb9dca07384b1935,drools-compiler/src/main/java/org/drools/semantics/java/RuleBuilder.java,RuleBuilder,build,#Column#ReturnValueDescr#,310
Before Change
declarations );
root.put( "globals",
getUsedGlobals( returnValueDescr.getText() ) );
root.put( "globalTypes",
this.pkg.getGlobals() );
After Change
List usedDeclarations = getUsedDeclarations( returnValueDescr,
returnValueDescr.getText() );
if ( usedDeclarations == null ) {
return;
}
Declaration[] declarations = new Declaration[usedDeclarations.size()];
for ( int i = 0, size = usedDeclarations.size(); i < size; i++ ) {
declarations[i] = (Declaration) this.declarations.get( (String) usedDeclarations.get( i ) );
}
Class clazz = ((ClassObjectType) column.getObjectType()).getClassType();
FieldExtractor extractor = getFieldExtractor( returnValueDescr,
clazz,
returnValueDescr.getFieldName() );
if ( extractor == null ) {
return;
}
Evaluator evaluator = getEvaluator( returnValueDescr,
extractor.getObjectType().getValueType(),
returnValueDescr.getEvaluator() );
if ( evaluator == null ) {
return;
}
ReturnValueConstraint returnValueConstraint = new ReturnValueConstraint( extractor,
declarations,
evaluator );
column.addConstraint( returnValueConstraint );
StringTemplate st = ruleGroup.getInstanceOf( "returnValueMethod" );
setStringTemplateAttributes( st,
declarations,
returnValueDescr.getText() );
st.setAttribute( "methodName",
classMethodName );
st.setAttribute( "text",
returnValueDescr.getText() );
this.methods.add( st.toString() );
st = invokerGroup.getInstanceOf( "returnValueInvoker" );
st.setAttribute( "package",
this.pkg.getName() );
st.setAttribute( "ruleClassName",
ucFirst( this.ruleDescr.getClassName() ) );
st.setAttribute( "invokerClassName",
ruleDescr.getClassName() + ucFirst( classMethodName ) + "Invoker" );
st.setAttribute( "methodName",
classMethodName );
setStringTemplateAttributes( st,
declarations,
returnValueDescr.getText() );
st.setAttribute( "methodName",
classMethodName );